The present invention relates generally to systems running applications that benefit from the incorporation of physics-based animations or physics data. More particularly, the present invention relates to Physics Processing Unit (PPU) enhanced systems incorporating a Graphics Processing Unit (GPU).
PPU enhanced systems have recently been developed. Systems readily adapted to PPU enhancement include, as examples, Personal Computers (PCs) and game consoles. Generally speaking, the performance capabilities of a conventional Central Processing Unit (CPU), such as a Pentium® or similar microprocessor, is enhanced by the additional provision of a PPU. Several exemplary embodiments of basic, PPU-enhanced system are disclosed in above referenced U.S. patent application.
The term “PPU-enhanced” generally describes any system incorporating a PPU to generate physics data for consumption by a main application running on a CPU. “Physics data” comprises any data or data structure related to a mathematical algorithm or logical/mathematical expression adapted to solve a physics problem or express a physics relationship.
Any set of logical computations or algorithms operating upon physics data is termed a physics “simulation.” A simulation generally runs on the PPU in cooperation with the CPU to generate a body of physics data that accurately defines the movement and/or interaction of objects and features in an animated scene displayed by a peripheral device associated with the system. So, in one sense the physics simulation run primarily on the PPU can be said to visually enhance the animation of a scene generated by the main application running on the CPU.
Such computationally derived physical animations form an increasingly important aspect of numerous applications. Computer games are an excellent example of applications that benefit from the added realism of animations derived from a defined set of physics-based inputs, parameters, and data. The term “animation” is used here to generally describe any visual representation of an event. The term “physics-based animation” refers to any animation derived, at least in part, from data provided by a physics simulation. A simulation is often said to drive the resulting animation. However, the direct relationship between simulation and animation, and the fact that the underlying simulation is not apparent to the system user typically results in an alternative use for the terms animation and simulation.
Cutting edge applications generally demand that physics-based animations, and the underlying simulations run in real-time. This requirement poses a significant problem for conventional systems. For example, conventional PCs are able to resolve only a limited amount of physics data in the time allowed by real time animation frame rates. This disability arises from structural limitations in the CPU architecture, data transfer bandwidth limitations, and the computational workload placed upon the CPU by other processes inherent in the execution of the main application.
For clarity of reference, the term “system” subsumes the term “host system.” A system may include a PPU, whereas the term “host system” generally refers to the combination of at least a CPU and an associated main memory. This combination of “host system” elements interacts with the PPU in a system.
Host systems almost always include a GPU. That is, many contemporary applications include significant graphics content and are intended to run with the aid of a separate GPU. GPUs are well know in the industry and are specifically designed to run in cooperation with a CPU to create (or “render”) animations having a three dimensional (3-D) quality.
PPU enhancement of a system implicates a number of changes in the way data is transferred between various system components. Non-PPU-enhanced systems have the luxury of a single computational platform (e.g., the CPU) generating data for consumption by a GPU. This is not the case in a PPU-enhanced system. Thus, new approaches to overall system architecture are required. Related data transfers must also be carefully considered.